'##################################################
'###  Top Level (Get root Path from system env)
'##################################################
function GetEnv(envVarName)
	On Error Resume Next
	' 创建Shell对象并获取值
	Set WshShell = CreateObject("WScript.Shell")
	envValue = WshShell.Environment("PROCESS")(envVarName) ' 优先查找进程级变量

	' 如果未找到则尝试系统级变量
	If Err.Number <> 0 Or envValue = "" Then
		Err.Clear
		envValue = WshShell.Environment("SYSTEM")(envVarName)
	End If

	' 如果仍未找到则尝试用户级变量
	If Err.Number <> 0 Or envValue = "" Then
		Err.Clear
		envValue = WshShell.Environment("USER")(envVarName)
	End If

	' 检查结果并输出
	If Err.Number = 0 And envValue <> "" Then
		GetEnv=envValue
	Else
		GetEnv=""
	End If
end function

'##################################################
'##################################################
'##################################################
sub IncludeVbs(filepath)
	Dim fso, file, content
	Set fso = CreateObject("Scripting.FileSystemObject")
	' 读取functions.vbs的内容
	Set file = fso.OpenTextFile(filepath, 1) ' 1表示只读
	content = file.ReadAll
	file.Close
	' 将functions.vbs的内容载入全局作用域
	ExecuteGlobal content
end sub

'##################################################
'##################################################
'##################################################
dim root,tmpfile
Dim doc
Set doc = application.ActiveDocument
main
set doc = nothing

sub main()
	'// REUSE
	envVarName ="EXP_SHORTCUTS_ROOT"
	root = GetEnv(envVarName)'"C:\MentorGraphics\2005EXP\SDD_HOME\pvtk\env\"
	if root ="" then 
		msgbox "please set env value (EXP_SHORTCUTS_ROOT = ?)"
		exit sub
	end if
	
	call IncludeVbs(root & "\skill_lib.vbs")
	
	If ValidateServer(doc) = 0 Then
	    msgbox "Server validation failed."
	    exit sub
	End If	
	
	tmpfile = doc.path & "output\tmp.vbs"
	'// TODO
	
	'on error resume next
	
	Dim ischeckT,ischeckB
	Dim textobjs,textobj
	Dim Textno,Ccount,cSide
	Dim Tn,Bn
	Textno=""
	Tn=0:Bn=0
	Dim msg
	
	doc.unselectall	
	
	if args="" then args=inputbox("refdes=?",args,"C1")
	args = cstr(args)
	Textno = ucase(args)	
	dim pExtrema 
	if Textno<>"" then
		set textobjs=doc.FabricationLayerTexts(epcbFabSilkscreen, epcbSelectAll,epcbSideTopOrBottom)
		textobjs.Selected=FALSE
		Ccount=0	

		for each textobj in textobjs
			if textobj.TextString = Textno then 
				Ccount = Ccount +1
				textobj.Selected  = true
				set pExtrema = textobj.Extrema
				if textobj.side =1 then Tn=Tn+1
				if textobj.side =512 then Bn=Bn+1
			end if 
		next  
		if Ccount<>0 then
			if Tn=0 then
				msg = Ccount & "  Bottom"
			end if
			if Bn=0 then
				msg = Ccount & "  Top"
			end if
			if Tn<>0 and Bn<>0 then 
				msg = Ccount & chr(13) & chr(10) & chr(13) & chr(10) & "Top:"& Tn & chr(13) & chr(10) & "Bot:"& Bn 
			end if
		else
			msg = "Can't find the target!"	
		end if
		'msgbox msg
		doc.ActiveView.SetExtentsToExtrema pExtrema
		'doc.ActiveView.SetExtentsToSelection 
	end if
end sub